﻿<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>创建NetCore自宿主项目</title>
    <script type="text/javascript" src="../../Content/highlighter/scripts/shCore.js"></script>
    <script type="text/javascript" src="../../Content/highlighter/scripts/shBrushCSharp.js"></script>
    <link type="text/css" rel="stylesheet" href="../../Content/highlighter/styles/shCore.css"/>
    <link type="text/css" rel="stylesheet" href="../../Content/highlighter/styles/shCoreEclipse.css" />
    <script type="text/javascript">SyntaxHighlighter.all();</script>
</head>
<body>
	<h3>利用Kerstrel服务器自宿主</h3>
    <p>
        <b>1.首先建立基于.net core的控制台应用程序</b><br/>
    </p>
    <p>
        <b>2.安装NFinal.Host nuget包</b><br/>
    </p>
	<p>
        <b>3.配置Startup类</b><br/>
        <pre class="brush: csharp">
            public class Startup
            {
                public void Configure(IApplicationBuilder app)
                {
                    //使用NFinal提供的中间件
                    app.UseMiddleware&lt;NFinal.Middleware.CoreMiddleware>();
                    //得到网站根目录
                    string root = AppContext.BaseDirectory;
                    //添加对静态文件处理的中间件
                    app.UseStaticFiles(new StaticFileOptions()
                    {
                        FileProvider = new PhysicalFileProvider(root),
                    });
                }
            }
        </pre>
    </p>
    <p>
        <b>4.启动Kerstrel服务器</b><br />
        <pre class="brush: csharp">
        public static void Main(string[] args)
        {
            bool debug = true;
            string url = null;
            if (debug)
            {
                url = "http://localhost:8083";
            }
            else
            {
                url = "http://www.domain.com";
            }
            var host = new WebHostBuilder()
            //加载管道配置
            .UseStartup<Startup>
                ()
                //静态文件目录
                .UseContentRoot(AppContext.BaseDirectory)
                //配置IP及端口
                .UseUrls(url)
                //使用kestrel服务器
                .UseKestrel()
                //组装服务器
                .Build();
                //执行
                host.Run();
       }
       </pre>
    </p>

    <b>5.全局配置文件nfinal.json</b>
    <p>
        在该项目默认输出目录中创建nfinal.json。<br/>
        一般位于bin\Debug\netcoreapp1.1\nfinal.json.
    </p>
    <b>6.插件配置文件plug.json</b>
    <p>
        该文件位于该项目输出目录中的Plugs目录下的插件目录中。<br />
        一般位于bin\Debug\netcoreapp1.1\Plugs\[插件目录]\plug.json<br/>
        在该配置文件中需要指定dll插件的文件路径用于该项目加载.
    </p>
</body>
</html>
